def test_custom_conf_does_not_apply_to_unknown_vhost(docker_compose, nginxproxy):
    r = nginxproxy.get("http://nginx-proxy/")
    assert r.status_code == 503
    assert "X-test" not in r.headers
    assert "X-test-2" not in r.headers

def test_custom_conf_applies_to_web1(docker_compose, nginxproxy):
    r = nginxproxy.get("http://web1.nginx-proxy.example/port")
    assert r.status_code == 200
    assert r.text == "answer from port 81\n"
    assert "X-test" in r.headers
    assert "X-test-2" not in r.headers
    assert "f00" == r.headers["X-test"]

def test_custom_conf_applies_to_regex(docker_compose, nginxproxy):
    r = nginxproxy.get("http://foo.nginx-proxy.regex/port")
    assert r.status_code == 200
    assert r.text == "answer from port 83\n"
    assert "X-test" in r.headers
    assert "X-test-2" not in r.headers
    assert "bar" == r.headers["X-test"]

def test_custom_conf_applies_to_wildcard(docker_compose, nginxproxy):
    r = nginxproxy.get("http://foo.nginx-proxy.example/port")
    assert r.status_code == 200
    assert r.text == "answer from port 84\n"
    # we should get the config from *.nginx-proxy.example_location.conf
    assert "X-test-2" in r.headers
    assert "baz" == r.headers["X-test-2"]
    # but not the config from web1.nginx-proxy.example_location.conf
    assert "X-test" not in r.headers

def test_custom_conf_does_not_apply_to_web2(docker_compose, nginxproxy):
    r = nginxproxy.get("http://web2.nginx-proxy.example/port")
    assert r.status_code == 200
    assert r.text == "answer from port 82\n"
    assert "X-test" not in r.headers
    assert "X-test-2" not in r.headers

def test_custom_block_is_present_in_nginx_generated_conf(docker_compose, nginxproxy):
    assert b"include /etc/nginx/vhost.d/web1.nginx-proxy.example_location;" in nginxproxy.get_conf()